pub fn dp_rec_mc(amount: u32) -> u32 {
    let coins = vec![1, 2, 5, 10, 20, 30, 50, 100];
    let mut remain = amount;
    let mut count = 0;
    for coin in coins.iter().rev() {
        count += remain / coin;
        remain %= coin;
        if remain == 0 {
            break;
        }
    }
    count
}
